/*
 * Copyright (c) 2004-2009 Derelict Developers
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are
 * met:
 *
 * * Redistributions of source code must retain the above copyright
 *   notice, this list of conditions and the following disclaimer.
 *
 * * Redistributions in binary form must reproduce the above copyright
 *   notice, this list of conditions and the following disclaimer in the
 *   documentation and/or other materials provided with the distribution.
 *
 * * Neither the names 'Derelict', 'DerelictGL', nor the names of its contributors
 *   may be used to endorse or promote products derived from this software
 *   without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
module derelict.opengl.glfuncs;

private
{
    import derelict.opengl.gltypes;
    import derelict.util.loader;
}

package SharedLib glLib;

package void loadGL(SharedLib lib)
{
    glLib = lib;

    // gl 1.0
    bindFunc(glClearIndex)("glClearIndex", lib);
    bindFunc(glClearColor)("glClearColor", lib);
    bindFunc(glClear)("glClear", lib);
    bindFunc(glIndexMask)("glIndexMask", lib);
    bindFunc(glColorMask)("glColorMask", lib);
    bindFunc(glAlphaFunc)("glAlphaFunc", lib);
    bindFunc(glBlendFunc)("glBlendFunc", lib);
    bindFunc(glLogicOp)("glLogicOp", lib);
    bindFunc(glCullFace)("glCullFace", lib);
    bindFunc(glFrontFace)("glFrontFace", lib);
    bindFunc(glPointSize)("glPointSize", lib);
    bindFunc(glLineWidth)("glLineWidth", lib);
    bindFunc(glLineStipple)("glLineStipple", lib);
    bindFunc(glPolygonMode)("glPolygonMode", lib);
    bindFunc(glPolygonOffset)("glPolygonOffset", lib);
    bindFunc(glPolygonStipple)("glPolygonStipple", lib);
    bindFunc(glGetPolygonStipple)("glGetPolygonStipple", lib);
    bindFunc(glEdgeFlag)("glEdgeFlag", lib);
    bindFunc(glEdgeFlagv)("glEdgeFlagv", lib);
    bindFunc(glScissor)("glScissor", lib);
    bindFunc(glClipPlane)("glClipPlane", lib);
    bindFunc(glGetClipPlane)("glGetClipPlane", lib);
    bindFunc(glDrawBuffer)("glDrawBuffer", lib);
    bindFunc(glReadBuffer)("glReadBuffer", lib);
    bindFunc(glEnable)("glEnable", lib);
    bindFunc(glDisable)("glDisable", lib);
    bindFunc(glIsEnabled)("glIsEnabled", lib);
    bindFunc(glEnableClientState)("glEnableClientState", lib);
    bindFunc(glDisableClientState)("glDisableClientState", lib);
    bindFunc(glGetBooleanv)("glGetBooleanv", lib);
    bindFunc(glGetDoublev)("glGetDoublev", lib);
    bindFunc(glGetFloatv)("glGetFloatv", lib);
    bindFunc(glGetIntegerv)("glGetIntegerv", lib);
    bindFunc(glPushAttrib)("glPushAttrib", lib);
    bindFunc(glPopAttrib)("glPopAttrib", lib);
    bindFunc(glPushClientAttrib)("glPushClientAttrib", lib);
    bindFunc(glPopClientAttrib)("glPopClientAttrib", lib);
    bindFunc(glRenderMode)("glRenderMode", lib);
    bindFunc(glGetError)("glGetError", lib);
    bindFunc(glGetString)("glGetString", lib);
    bindFunc(glFinish)("glFinish", lib);
    bindFunc(glFlush)("glFlush", lib);
    bindFunc(glHint)("glHint", lib);
    bindFunc(glClearDepth)("glClearDepth", lib);
    bindFunc(glDepthFunc)("glDepthFunc", lib);
    bindFunc(glDepthMask)("glDepthMask", lib);
    bindFunc(glDepthRange)("glDepthRange", lib);
    bindFunc(glClearAccum)("glClearAccum", lib);
    bindFunc(glAccum)("glAccum", lib);
    bindFunc(glMatrixMode)("glMatrixMode", lib);
    bindFunc(glOrtho)("glOrtho", lib);
    bindFunc(glFrustum)("glFrustum", lib);
    bindFunc(glViewport)("glViewport", lib);
    bindFunc(glPushMatrix)("glPushMatrix", lib);
    bindFunc(glPopMatrix)("glPopMatrix", lib);
    bindFunc(glLoadIdentity)("glLoadIdentity", lib);
    bindFunc(glLoadMatrixd)("glLoadMatrixd", lib);
    bindFunc(glLoadMatrixf)("glLoadMatrixf", lib);
    bindFunc(glMultMatrixd)("glMultMatrixd", lib);
    bindFunc(glMultMatrixf)("glMultMatrixf", lib);
    bindFunc(glRotated)("glRotated", lib);
    bindFunc(glRotatef)("glRotatef", lib);
    bindFunc(glScaled)("glScaled", lib);
    bindFunc(glScalef)("glScalef", lib);
    bindFunc(glTranslated)("glTranslated", lib);
    bindFunc(glTranslatef)("glTranslatef", lib);
    bindFunc(glIsList)("glIsList", lib);
    bindFunc(glDeleteLists)("glDeleteLists", lib);
    bindFunc(glGenLists)("glGenLists", lib);
    bindFunc(glNewList)("glNewList", lib);
    bindFunc(glEndList)("glEndList", lib);
    bindFunc(glCallList)("glCallList", lib);
    bindFunc(glCallLists)("glCallLists", lib);
    bindFunc(glListBase)("glListBase", lib);
    bindFunc(glBegin)("glBegin", lib);
    bindFunc(glEnd)("glEnd", lib);
    bindFunc(glVertex2d)("glVertex2d", lib);
    bindFunc(glVertex2f)("glVertex2f", lib);
    bindFunc(glVertex2i)("glVertex2i", lib);
    bindFunc(glVertex2s)("glVertex2s", lib);
    bindFunc(glVertex3d)("glVertex3d", lib);
    bindFunc(glVertex3f)("glVertex3f", lib);
    bindFunc(glVertex3i)("glVertex3i", lib);
    bindFunc(glVertex3s)("glVertex3s", lib);
    bindFunc(glVertex4d)("glVertex4d", lib);
    bindFunc(glVertex4f)("glVertex4f", lib);
    bindFunc(glVertex4i)("glVertex4i", lib);
    bindFunc(glVertex4s)("glVertex4s", lib);
    bindFunc(glVertex2dv)("glVertex2dv", lib);
    bindFunc(glVertex2fv)("glVertex2fv", lib);
    bindFunc(glVertex2iv)("glVertex2iv", lib);
    bindFunc(glVertex2sv)("glVertex2sv", lib);
    bindFunc(glVertex3dv)("glVertex3dv", lib);
    bindFunc(glVertex3fv)("glVertex3fv", lib);
    bindFunc(glVertex3iv)("glVertex3iv", lib);
    bindFunc(glVertex3sv)("glVertex3sv", lib);
    bindFunc(glVertex4dv)("glVertex4dv", lib);
    bindFunc(glVertex4fv)("glVertex4fv", lib);
    bindFunc(glVertex4iv)("glVertex4iv", lib);
    bindFunc(glVertex4sv)("glVertex4sv", lib);
    bindFunc(glNormal3b)("glNormal3b", lib);
    bindFunc(glNormal3d)("glNormal3d", lib);
    bindFunc(glNormal3f)("glNormal3f", lib);
    bindFunc(glNormal3i)("glNormal3i", lib);
    bindFunc(glNormal3s)("glNormal3s", lib);
    bindFunc(glNormal3bv)("glNormal3bv", lib);
    bindFunc(glNormal3dv)("glNormal3dv", lib);
    bindFunc(glNormal3fv)("glNormal3fv", lib);
    bindFunc(glNormal3iv)("glNormal3iv", lib);
    bindFunc(glNormal3sv)("glNormal3sv", lib);
    bindFunc(glIndexd)("glIndexd", lib);
    bindFunc(glIndexf)("glIndexf", lib);
    bindFunc(glIndexi)("glIndexi", lib);
    bindFunc(glIndexs)("glIndexs", lib);
    bindFunc(glIndexub)("glIndexub", lib);
    bindFunc(glIndexdv)("glIndexdv", lib);
    bindFunc(glIndexfv)("glIndexfv", lib);
    bindFunc(glIndexiv)("glIndexiv", lib);
    bindFunc(glIndexsv)("glIndexsv", lib);
    bindFunc(glIndexubv)("glIndexubv", lib);
    bindFunc(glColor3b)("glColor3b", lib);
    bindFunc(glColor3d)("glColor3d", lib);
    bindFunc(glColor3f)("glColor3f", lib);
    bindFunc(glColor3i)("glColor3i", lib);
    bindFunc(glColor3s)("glColor3s", lib);
    bindFunc(glColor3ub)("glColor3ub", lib);
    bindFunc(glColor3ui)("glColor3ui", lib);
    bindFunc(glColor3us)("glColor3us", lib);
    bindFunc(glColor4b)("glColor4b", lib);
    bindFunc(glColor4d)("glColor4d", lib);
    bindFunc(glColor4f)("glColor4f", lib);
    bindFunc(glColor4i)("glColor4i", lib);
    bindFunc(glColor4s)("glColor4s", lib);
    bindFunc(glColor4ub)("glColor4ub", lib);
    bindFunc(glColor4ui)("glColor4ui", lib);
    bindFunc(glColor4us)("glColor4us", lib);
    bindFunc(glColor3bv)("glColor3bv", lib);
    bindFunc(glColor3dv)("glColor3dv", lib);
    bindFunc(glColor3fv)("glColor3fv", lib);
    bindFunc(glColor3iv)("glColor3iv", lib);
    bindFunc(glColor3sv)("glColor3sv", lib);
    bindFunc(glColor3ubv)("glColor3ubv", lib);
    bindFunc(glColor3uiv)("glColor3uiv", lib);
    bindFunc(glColor3usv)("glColor3usv", lib);
    bindFunc(glColor4bv)("glColor4bv", lib);
    bindFunc(glColor4dv)("glColor4dv", lib);
    bindFunc(glColor4fv)("glColor4fv", lib);
    bindFunc(glColor4iv)("glColor4iv", lib);
    bindFunc(glColor4sv)("glColor4sv", lib);
    bindFunc(glColor4ubv)("glColor4ubv", lib);
    bindFunc(glColor4uiv)("glColor4uiv", lib);
    bindFunc(glColor4usv)("glColor4usv", lib);
    bindFunc(glTexCoord1d)("glTexCoord1d", lib);
    bindFunc(glTexCoord1f)("glTexCoord1f", lib);
    bindFunc(glTexCoord1i)("glTexCoord1i", lib);
    bindFunc(glTexCoord1s)("glTexCoord1s", lib);
    bindFunc(glTexCoord2d)("glTexCoord2d", lib);
    bindFunc(glTexCoord2f)("glTexCoord2f", lib);
    bindFunc(glTexCoord2i)("glTexCoord2i", lib);
    bindFunc(glTexCoord2s)("glTexCoord2s", lib);
    bindFunc(glTexCoord3d)("glTexCoord3d", lib);
    bindFunc(glTexCoord3f)("glTexCoord3f", lib);
    bindFunc(glTexCoord3i)("glTexCoord3i", lib);
    bindFunc(glTexCoord3s)("glTexCoord3s", lib);
    bindFunc(glTexCoord4d)("glTexCoord4d", lib);
    bindFunc(glTexCoord4f)("glTexCoord4f", lib);
    bindFunc(glTexCoord4i)("glTexCoord4i", lib);
    bindFunc(glTexCoord4s)("glTexCoord4s", lib);
    bindFunc(glTexCoord1dv)("glTexCoord1dv", lib);
    bindFunc(glTexCoord1fv)("glTexCoord1fv", lib);
    bindFunc(glTexCoord1iv)("glTexCoord1iv", lib);
    bindFunc(glTexCoord1sv)("glTexCoord1sv", lib);
    bindFunc(glTexCoord2dv)("glTexCoord2dv", lib);
    bindFunc(glTexCoord2fv)("glTexCoord2fv", lib);
    bindFunc(glTexCoord2iv)("glTexCoord2iv", lib);
    bindFunc(glTexCoord2sv)("glTexCoord2sv", lib);
    bindFunc(glTexCoord3dv)("glTexCoord3dv", lib);
    bindFunc(glTexCoord3fv)("glTexCoord3fv", lib);
    bindFunc(glTexCoord3iv)("glTexCoord3iv", lib);
    bindFunc(glTexCoord3sv)("glTexCoord3sv", lib);
    bindFunc(glTexCoord4dv)("glTexCoord4dv", lib);
    bindFunc(glTexCoord4fv)("glTexCoord4fv", lib);
    bindFunc(glTexCoord4iv)("glTexCoord4iv", lib);
    bindFunc(glTexCoord4sv)("glTexCoord4sv", lib);
    bindFunc(glRasterPos2d)("glRasterPos2d", lib);
    bindFunc(glRasterPos2f)("glRasterPos2f", lib);
    bindFunc(glRasterPos2i)("glRasterPos2i", lib);
    bindFunc(glRasterPos2s)("glRasterPos2s", lib);
    bindFunc(glRasterPos3d)("glRasterPos3d", lib);
    bindFunc(glRasterPos3f)("glRasterPos3f", lib);
    bindFunc(glRasterPos3i)("glRasterPos3i", lib);
    bindFunc(glRasterPos3s)("glRasterPos3s", lib);
    bindFunc(glRasterPos4d)("glRasterPos4d", lib);
    bindFunc(glRasterPos4f)("glRasterPos4f", lib);
    bindFunc(glRasterPos4i)("glRasterPos4i", lib);
    bindFunc(glRasterPos4s)("glRasterPos4s", lib);
    bindFunc(glRasterPos2dv)("glRasterPos2dv", lib);
    bindFunc(glRasterPos2fv)("glRasterPos2fv", lib);
    bindFunc(glRasterPos2iv)("glRasterPos2iv", lib);
    bindFunc(glRasterPos2sv)("glRasterPos2sv", lib);
    bindFunc(glRasterPos3dv)("glRasterPos3dv", lib);
    bindFunc(glRasterPos3fv)("glRasterPos3fv", lib);
    bindFunc(glRasterPos3iv)("glRasterPos3iv", lib);
    bindFunc(glRasterPos3sv)("glRasterPos3sv", lib);
    bindFunc(glRasterPos4dv)("glRasterPos4dv", lib);
    bindFunc(glRasterPos4fv)("glRasterPos4fv", lib);
    bindFunc(glRasterPos4iv)("glRasterPos4iv", lib);
    bindFunc(glRasterPos4sv)("glRasterPos4sv", lib);
    bindFunc(glRectd)("glRectd", lib);
    bindFunc(glRectf)("glRectf", lib);
    bindFunc(glRecti)("glRecti", lib);
    bindFunc(glRects)("glRects", lib);
    bindFunc(glRectdv)("glRectdv", lib);
    bindFunc(glRectfv)("glRectfv", lib);
    bindFunc(glRectiv)("glRectiv", lib);
    bindFunc(glRectsv)("glRectsv", lib);
    bindFunc(glShadeModel)("glShadeModel", lib);
    bindFunc(glLightf)("glLightf", lib);
    bindFunc(glLighti)("glLighti", lib);
    bindFunc(glLightfv)("glLightfv", lib);
    bindFunc(glLightiv)("glLightiv", lib);
    bindFunc(glGetLightfv)("glGetLightfv", lib);
    bindFunc(glGetLightiv)("glGetLightiv", lib);
    bindFunc(glLightModelf)("glLightModelf", lib);
    bindFunc(glLightModeli)("glLightModeli", lib);
    bindFunc(glLightModelfv)("glLightModelfv", lib);
    bindFunc(glLightModeliv)("glLightModeliv", lib);
    bindFunc(glMaterialf)("glMaterialf", lib);
    bindFunc(glMateriali)("glMateriali", lib);
    bindFunc(glMaterialfv)("glMaterialfv", lib);
    bindFunc(glMaterialiv)("glMaterialiv", lib);
    bindFunc(glGetMaterialfv)("glGetMaterialfv", lib);
    bindFunc(glGetMaterialiv)("glGetMaterialiv", lib);
    bindFunc(glColorMaterial)("glColorMaterial", lib);
    bindFunc(glPixelZoom)("glPixelZoom", lib);
    bindFunc(glPixelStoref)("glPixelStoref", lib);
    bindFunc(glPixelStorei)("glPixelStorei", lib);
    bindFunc(glPixelTransferf)("glPixelTransferf", lib);
    bindFunc(glPixelTransferi)("glPixelTransferi", lib);
    bindFunc(glPixelMapfv)("glPixelMapfv", lib);
    bindFunc(glPixelMapuiv)("glPixelMapuiv", lib);
    bindFunc(glPixelMapusv)("glPixelMapusv", lib);
    bindFunc(glGetPixelMapfv)("glGetPixelMapfv", lib);
    bindFunc(glGetPixelMapuiv)("glGetPixelMapuiv", lib);
    bindFunc(glGetPixelMapusv)("glGetPixelMapusv", lib);
    bindFunc(glBitmap)("glBitmap", lib);
    bindFunc(glReadPixels)("glReadPixels", lib);
    bindFunc(glDrawPixels)("glDrawPixels", lib);
    bindFunc(glCopyPixels)("glCopyPixels", lib);
    bindFunc(glStencilFunc)("glStencilFunc", lib);
    bindFunc(glStencilMask)("glStencilMask", lib);
    bindFunc(glStencilOp)("glStencilOp", lib);
    bindFunc(glClearStencil)("glClearStencil", lib);
    bindFunc(glTexGend)("glTexGend", lib);
    bindFunc(glTexGenf)("glTexGenf", lib);
    bindFunc(glTexGeni)("glTexGeni", lib);
    bindFunc(glTexGendv)("glTexGendv", lib);
    bindFunc(glTexGenfv)("glTexGenfv", lib);
    bindFunc(glTexGeniv)("glTexGeniv", lib);
    bindFunc(glTexEnvf)("glTexEnvf", lib);
    bindFunc(glTexEnvi)("glTexEnvi", lib);
    bindFunc(glTexEnvfv)("glTexEnvfv", lib);
    bindFunc(glTexEnviv)("glTexEnviv", lib);
    bindFunc(glGetTexEnvfv)("glGetTexEnvfv", lib);
    bindFunc(glGetTexEnviv)("glGetTexEnviv", lib);
    bindFunc(glTexParameterf)("glTexParameterf", lib);
    bindFunc(glTexParameteri)("glTexParameteri", lib);
    bindFunc(glTexParameterfv)("glTexParameterfv", lib);
    bindFunc(glTexParameteriv)("glTexParameteriv", lib);
    bindFunc(glGetTexParameterfv)("glGetTexParameterfv", lib);
    bindFunc(glGetTexParameteriv)("glGetTexParameteriv", lib);
    bindFunc(glGetTexLevelParameterfv)("glGetTexLevelParameterfv", lib);
    bindFunc(glGetTexLevelParameteriv)("glGetTexLevelParameteriv", lib);
    bindFunc(glTexImage1D)("glTexImage1D", lib);
    bindFunc(glTexImage2D)("glTexImage2D", lib);
    bindFunc(glGetTexImage)("glGetTexImage", lib);
    bindFunc(glMap1d)("glMap1d", lib);
    bindFunc(glMap1f)("glMap1f", lib);
    bindFunc(glMap2d)("glMap2d", lib);
    bindFunc(glMap2f)("glMap2f", lib);
    bindFunc(glGetMapdv)("glGetMapdv", lib);
    bindFunc(glGetMapfv)("glGetMapfv", lib);
    bindFunc(glEvalCoord1d)("glEvalCoord1d", lib);
    bindFunc(glEvalCoord1f)("glEvalCoord1f", lib);
    bindFunc(glEvalCoord1dv)("glEvalCoord1dv", lib);
    bindFunc(glEvalCoord1fv)("glEvalCoord1fv", lib);
    bindFunc(glEvalCoord2d)("glEvalCoord2d", lib);
    bindFunc(glEvalCoord2f)("glEvalCoord2f", lib);
    bindFunc(glEvalCoord2dv)("glEvalCoord2dv", lib);
    bindFunc(glEvalCoord2fv)("glEvalCoord2fv", lib);
    bindFunc(glMapGrid1d)("glMapGrid1d", lib);
    bindFunc(glMapGrid1f)("glMapGrid1f", lib);
    bindFunc(glMapGrid2d)("glMapGrid2d", lib);
    bindFunc(glMapGrid2f)("glMapGrid2f", lib);
    bindFunc(glEvalPoint1)("glEvalPoint1", lib);
    bindFunc(glEvalPoint2)("glEvalPoint2", lib);
    bindFunc(glEvalMesh1)("glEvalMesh1", lib);
    bindFunc(glEvalMesh2)("glEvalMesh2", lib);
    bindFunc(glFogf)("glFogf", lib);
    bindFunc(glFogi)("glFogi", lib);
    bindFunc(glFogfv)("glFogfv", lib);
    bindFunc(glFogiv)("glFogiv", lib);
    bindFunc(glFeedbackBuffer)("glFeedbackBuffer", lib);
    bindFunc(glPassThrough)("glPassThrough", lib);
    bindFunc(glSelectBuffer)("glSelectBuffer", lib);
    bindFunc(glInitNames)("glInitNames", lib);
    bindFunc(glLoadName)("glLoadName", lib);
    bindFunc(glPushName)("glPushName", lib);
    bindFunc(glPopName)("glPopName", lib);
    // gl 1.1
    bindFunc(glGenTextures)("glGenTextures", lib);
    bindFunc(glDeleteTextures)("glDeleteTextures", lib);
    bindFunc(glBindTexture)("glBindTexture", lib);
    bindFunc(glPrioritizeTextures)("glPrioritizeTextures", lib);
    bindFunc(glAreTexturesResident)("glAreTexturesResident", lib);
    bindFunc(glIsTexture)("glIsTexture", lib);
    bindFunc(glTexSubImage1D)("glTexSubImage1D", lib);
    bindFunc(glTexSubImage2D)("glTexSubImage2D", lib);
    bindFunc(glCopyTexImage1D)("glCopyTexImage1D", lib);
    bindFunc(glCopyTexImage2D)("glCopyTexImage2D", lib);
    bindFunc(glCopyTexSubImage1D)("glCopyTexSubImage1D", lib);
    bindFunc(glCopyTexSubImage2D)("glCopyTexSubImage2D", lib);
    bindFunc(glVertexPointer)("glVertexPointer", lib);
    bindFunc(glNormalPointer)("glNormalPointer", lib);
    bindFunc(glColorPointer)("glColorPointer", lib);
    bindFunc(glIndexPointer)("glIndexPointer", lib);
    bindFunc(glTexCoordPointer)("glTexCoordPointer", lib);
    bindFunc(glEdgeFlagPointer)("glEdgeFlagPointer", lib);
    bindFunc(glGetPointerv)("glGetPointerv", lib);
    bindFunc(glArrayElement)("glArrayElement", lib);
    bindFunc(glDrawArrays)("glDrawArrays", lib);
    bindFunc(glDrawElements)("glDrawElements", lib);
    bindFunc(glInterleavedArrays)("glInterleavedArrays", lib);
}

extern(System)
{
    void function(GLfloat c) glClearIndex;
    void function(GLclampf,GLclampf,GLclampf,GLclampf) glClearColor;
    void function(GLbitfield) glClear;
    void function(GLuint) glIndexMask;
    void function(GLboolean,GLboolean,GLboolean,GLboolean) glColorMask;
    void function(GLenum,GLclampf) glAlphaFunc;
    void function(GLenum,GLenum) glBlendFunc;
    void function(GLenum) glLogicOp;
    void function(GLenum) glCullFace;
    void function(GLenum) glFrontFace;
    void function(GLfloat) glPointSize;
    void function(GLfloat) glLineWidth;
    void function(GLint,GLushort) glLineStipple;
    void function(GLenum,GLenum) glPolygonMode;
    void function(GLfloat,GLfloat) glPolygonOffset;
    void function(GLubyte*) glPolygonStipple;
    void function(GLubyte*) glGetPolygonStipple;
    void function(GLboolean) glEdgeFlag;
    void function(GLboolean*)glEdgeFlagv;
    void function(GLint,GLint,GLsizei,GLsizei) glScissor;
    void function(GLenum,GLdouble*) glClipPlane;
    void function(GLenum,GLdouble*) glGetClipPlane;
    void function(GLenum) glDrawBuffer;
    void function(GLenum) glReadBuffer;
    void function(GLenum) glEnable;
    void function(GLenum) glDisable;
    GLboolean function(GLenum) glIsEnabled;
    void function(GLenum) glEnableClientState;
    void function(GLenum) glDisableClientState;
    void function(GLenum,GLboolean*) glGetBooleanv;
    void function(GLenum,GLdouble*) glGetDoublev;
    void function(GLenum,GLfloat*) glGetFloatv;
    void function(GLenum,GLint*) glGetIntegerv;
    void function(GLbitfield) glPushAttrib;
    void function() glPopAttrib;
    void function(GLbitfield) glPushClientAttrib;
    void function() glPopClientAttrib;
    GLint function(GLenum) glRenderMode;
    GLenum function() glGetError;
    GLchar* function(GLenum) glGetString;
    void function() glFinish;
    void function() glFlush;
    void function(GLenum,GLenum) glHint;

    void function(GLclampd) glClearDepth;
    void function(GLenum) glDepthFunc;
    void function(GLboolean) glDepthMask;
    void function(GLclampd,GLclampd) glDepthRange;

    void function(GLfloat,GLfloat,GLfloat,GLfloat) glClearAccum;
    void function(GLenum,GLfloat) glAccum;

    void function(GLenum) glMatrixMode;
    void function(GLdouble,GLdouble,GLdouble,GLdouble,GLdouble,GLdouble) glOrtho;
    void function(GLdouble,GLdouble,GLdouble,GLdouble,GLdouble,GLdouble) glFrustum;
    void function(GLint,GLint,GLsizei,GLsizei) glViewport;
    void function() glPushMatrix;
    void function() glPopMatrix;
    void function() glLoadIdentity;
    void function(GLdouble*) glLoadMatrixd;
    void function(GLfloat*) glLoadMatrixf;
    void function(GLdouble*) glMultMatrixd;
    void function(GLfloat*) glMultMatrixf;
    void function(GLdouble,GLdouble,GLdouble,GLdouble) glRotated;
    void function(GLfloat,GLfloat,GLfloat,GLfloat) glRotatef;
    void function(GLdouble,GLdouble,GLdouble) glScaled;
    void function(GLfloat,GLfloat,GLfloat) glScalef;
    void function(GLdouble,GLdouble,GLdouble) glTranslated;
    void function(GLfloat,GLfloat,GLfloat) glTranslatef;

    GLboolean function(GLuint) glIsList;
    void function(GLuint,GLsizei) glDeleteLists;
    GLuint function(GLsizei) glGenLists;
    void function(GLuint,GLenum) glNewList;
    void function() glEndList;
    void function(GLuint) glCallList;
    void function(GLsizei,GLenum,GLvoid*) glCallLists;
    void function(GLuint) glListBase;

    void function(GLenum) glBegin;
    void function() glEnd;
    void function(GLdouble,GLdouble) glVertex2d;
    void function(GLfloat,GLfloat) glVertex2f;
    void function(GLint,GLint) glVertex2i;
    void function(GLshort,GLshort) glVertex2s;
    void function(GLdouble,GLdouble,GLdouble) glVertex3d;
    void function(GLfloat,GLfloat,GLfloat) glVertex3f;
    void function(GLint,GLint,GLint) glVertex3i;
    void function(GLshort,GLshort,GLshort) glVertex3s;
    void function(GLdouble,GLdouble,GLdouble,GLdouble) glVertex4d;
    void function(GLfloat,GLfloat,GLfloat,GLfloat) glVertex4f;
    void function(GLint,GLint,GLint,GLint) glVertex4i;
    void function(GLshort,GLshort,GLshort,GLshort) glVertex4s;
    void function(GLdouble*) glVertex2dv;
    void function(GLfloat*) glVertex2fv;
    void function(GLint*) glVertex2iv;
    void function(GLshort*) glVertex2sv;
    void function(GLdouble*) glVertex3dv;
    void function(GLfloat*) glVertex3fv;
    void function(GLint*) glVertex3iv;
    void function(GLshort*) glVertex3sv;
    void function(GLdouble*) glVertex4dv;
    void function(GLfloat*) glVertex4fv;
    void function(GLint*) glVertex4iv;
    void function(GLshort*) glVertex4sv;
    void function(GLbyte,GLbyte,GLbyte) glNormal3b;
    void function(GLdouble,GLdouble,GLdouble) glNormal3d;
    void function(GLfloat,GLfloat,GLfloat) glNormal3f;
    void function(GLint,GLint,GLint) glNormal3i;
    void function(GLshort,GLshort,GLshort) glNormal3s;
    void function(GLbyte*) glNormal3bv;
    void function(GLdouble*) glNormal3dv;
    void function(GLfloat*) glNormal3fv;
    void function(GLint*) glNormal3iv;
    void function(GLshort*) glNormal3sv;
    void function(GLdouble) glIndexd;
    void function(GLfloat) glIndexf;
    void function(GLint) glIndexi;
    void function(GLshort) glIndexs;
    void function(GLubyte) glIndexub;
    void function(GLdouble*) glIndexdv;
    void function(GLfloat*) glIndexfv;
    void function(GLint*) glIndexiv;
    void function(GLshort*) glIndexsv;
    void function(GLubyte*) glIndexubv;
    void function(GLbyte,GLbyte,GLbyte) glColor3b;
    void function(GLdouble,GLdouble,GLdouble) glColor3d;
    void function(GLfloat,GLfloat,GLfloat) glColor3f;
    void function(GLint,GLint,GLint) glColor3i;
    void function(GLshort,GLshort,GLshort) glColor3s;
    void function(GLubyte,GLubyte,GLubyte) glColor3ub;
    void function(GLuint,GLuint,GLuint) glColor3ui;
    void function(GLushort,GLushort,GLushort) glColor3us;
    void function(GLbyte,GLbyte,GLbyte,GLbyte) glColor4b;
    void function(GLdouble,GLdouble,GLdouble,GLdouble) glColor4d;
    void function(GLfloat,GLfloat,GLfloat,GLfloat) glColor4f;
    void function(GLint,GLint,GLint,GLint) glColor4i;
    void function(GLshort,GLshort,GLshort,GLshort) glColor4s;
    void function(GLubyte,GLubyte,GLubyte,GLubyte) glColor4ub;
    void function(GLuint,GLuint,GLuint,GLuint) glColor4ui;
    void function(GLushort,GLushort,GLushort,GLushort) glColor4us;
    void function(GLbyte*) glColor3bv;
    void function(GLdouble*) glColor3dv;
    void function(GLfloat*) glColor3fv;
    void function(GLint*) glColor3iv;
    void function(GLshort*) glColor3sv;
    void function(GLubyte*) glColor3ubv;
    void function(GLuint*) glColor3uiv;
    void function(GLushort*) glColor3usv;
    void function(GLbyte*) glColor4bv;
    void function(GLdouble*) glColor4dv;
    void function(GLfloat*) glColor4fv;
    void function(GLint*) glColor4iv;
    void function(GLshort*) glColor4sv;
    void function(GLubyte*) glColor4ubv;
    void function(GLuint*) glColor4uiv;
    void function(GLushort) glColor4usv;
    void function(GLdouble) glTexCoord1d;
    void function(GLfloat) glTexCoord1f;
    void function(GLint) glTexCoord1i;
    void function(GLshort) glTexCoord1s;
    void function(GLdouble,GLdouble) glTexCoord2d;
    void function(GLfloat,GLfloat) glTexCoord2f;
    void function(GLint,GLint) glTexCoord2i;
    void function(GLshort,GLshort) glTexCoord2s;
    void function(GLdouble,GLdouble,GLdouble) glTexCoord3d;
    void function(GLfloat,GLfloat,GLfloat) glTexCoord3f;
    void function(GLint,GLint,GLint) glTexCoord3i;
    void function(GLshort,GLshort,GLshort) glTexCoord3s;
    void function(GLdouble,GLdouble,GLdouble,GLdouble) glTexCoord4d;
    void function(GLfloat,GLfloat,GLfloat,GLfloat) glTexCoord4f;
    void function(GLint,GLint,GLint,GLint) glTexCoord4i;
    void function(GLshort,GLshort,GLshort,GLshort) glTexCoord4s;
    void function(GLdouble*) glTexCoord1dv;
    void function(GLfloat*) glTexCoord1fv;
    void function(GLint*) glTexCoord1iv;
    void function(GLshort*) glTexCoord1sv;
    void function(GLdouble*) glTexCoord2dv;
    void function(GLfloat*) glTexCoord2fv;
    void function(GLint*) glTexCoord2iv;
    void function(GLshort*) glTexCoord2sv;
    void function(GLdouble*) glTexCoord3dv;
    void function(GLfloat*) glTexCoord3fv;
    void function(GLint*) glTexCoord3iv;
    void function(GLshort*) glTexCoord3sv;
    void function(GLdouble*) glTexCoord4dv;
    void function(GLfloat*) glTexCoord4fv;
    void function(GLint*) glTexCoord4iv;
    void function(GLshort*) glTexCoord4sv;
    void function(GLdouble,GLdouble) glRasterPos2d;
    void function(GLfloat,GLfloat) glRasterPos2f;
    void function(GLint,GLint) glRasterPos2i;
    void function(GLshort,GLshort) glRasterPos2s;
    void function(GLdouble,GLdouble,GLdouble) glRasterPos3d;
    void function(GLfloat,GLfloat,GLfloat) glRasterPos3f;
    void function(GLint,GLint,GLint) glRasterPos3i;
    void function(GLshort,GLshort,GLshort) glRasterPos3s;
    void function(GLdouble,GLdouble,GLdouble,GLdouble) glRasterPos4d;
    void function(GLfloat,GLfloat,GLfloat,GLfloat) glRasterPos4f;
    void function(GLint,GLint,GLint,GLint) glRasterPos4i;
    void function(GLshort,GLshort,GLshort,GLshort) glRasterPos4s;
    void function(GLdouble*) glRasterPos2dv;
    void function(GLfloat*) glRasterPos2fv;
    void function(GLint*) glRasterPos2iv;
    void function(GLshort*) glRasterPos2sv;
    void function(GLdouble*) glRasterPos3dv;
    void function(GLfloat*) glRasterPos3fv;
    void function(GLint*) glRasterPos3iv;
    void function(GLshort*) glRasterPos3sv;
    void function(GLdouble*) glRasterPos4dv;
    void function(GLfloat*) glRasterPos4fv;
    void function(GLint*) glRasterPos4iv;
    void function(GLshort*) glRasterPos4sv;
    void function(GLdouble,GLdouble,GLdouble,GLdouble) glRectd;
    void function(GLfloat,GLfloat,GLfloat,GLfloat) glRectf;
    void function(GLint,GLint,GLint,GLint) glRecti;
    void function(GLshort,GLshort,GLshort,GLshort) glRects;
    void function(GLdouble*) glRectdv;
    void function(GLfloat*) glRectfv;
    void function(GLint*) glRectiv;
    void function(GLshort*) glRectsv;

    void function(GLenum) glShadeModel;
    void function(GLenum,GLenum,GLfloat) glLightf;
    void function(GLenum,GLenum,GLint) glLighti;
    void function(GLenum,GLenum,GLfloat*) glLightfv;
    void function(GLenum,GLenum,GLint*) glLightiv;
    void function(GLenum,GLenum,GLfloat*) glGetLightfv;
    void function(GLenum,GLenum,GLint*) glGetLightiv;
    void function(GLenum,GLfloat) glLightModelf;
    void function(GLenum,GLint) glLightModeli;
    void function(GLenum,GLfloat*) glLightModelfv;
    void function(GLenum,GLint*) glLightModeliv;
    void function(GLenum,GLenum,GLfloat) glMaterialf;
    void function(GLenum,GLenum,GLint) glMateriali;
    void function(GLenum,GLenum,GLfloat*) glMaterialfv;
    void function(GLenum,GLenum,GLint*) glMaterialiv;
    void function(GLenum,GLenum,GLfloat*) glGetMaterialfv;
    void function(GLenum,GLenum,GLint*) glGetMaterialiv;
    void function(GLenum,GLenum) glColorMaterial;

    void function(GLfloat,GLfloat) glPixelZoom;
    void function(GLenum,GLfloat) glPixelStoref;
    void function(GLenum,GLint) glPixelStorei;
    void function(GLenum,GLfloat) glPixelTransferf;
    void function(GLenum,GLint) glPixelTransferi;
    void function(GLenum,GLint,GLfloat*) glPixelMapfv;
    void function(GLenum,GLint,GLuint*) glPixelMapuiv;
    void function(GLenum,GLint,GLushort*) glPixelMapusv;
    void function(GLenum,GLfloat*) glGetPixelMapfv;
    void function(GLenum,GLuint*) glGetPixelMapuiv;
    void function(GLenum,GLushort*) glGetPixelMapusv;
    void function(GLsizei,GLsizei,GLfloat,GLfloat,GLfloat,GLfloat,GLubyte*) glBitmap;
    void function(GLint,GLint,GLsizei,GLsizei,GLenum,GLenum,GLvoid*) glReadPixels;
    void function(GLsizei,GLsizei,GLenum,GLenum,GLvoid*) glDrawPixels;
    void function(GLint,GLint,GLsizei,GLsizei,GLenum) glCopyPixels;

    void function(GLenum,GLint,GLuint) glStencilFunc;
    void function(GLuint) glStencilMask;
    void function(GLenum,GLenum,GLenum) glStencilOp;
    void function(GLint) glClearStencil;

    void function(GLenum,GLenum,GLdouble) glTexGend;
    void function(GLenum,GLenum,GLfloat) glTexGenf;
    void function(GLenum,GLenum,GLint) glTexGeni;
    void function(GLenum,GLenum,GLdouble*) glTexGendv;
    void function(GLenum,GLenum,GLfloat*) glTexGenfv;
    void function(GLenum,GLenum,GLint*) glTexGeniv;
    void function(GLenum,GLenum,GLdouble*) glGetTexGendv;
    void function(GLenum,GLenum,GLfloat*) glGetTexGenfv;
    void function(GLenum,GLenum,GLint*) glGetTexGeniv;
    void function(GLenum,GLenum,GLfloat) glTexEnvf;
    void function(GLenum,GLenum,GLint) glTexEnvi;
    void function(GLenum,GLenum,GLfloat*) glTexEnvfv;
    void function(GLenum,GLenum,GLint*) glTexEnviv;
    void function(GLenum,GLenum,GLfloat*) glGetTexEnvfv;
    void function(GLenum,GLenum,GLint*) glGetTexEnviv;
    void function(GLenum,GLenum,GLfloat) glTexParameterf;
    void function(GLenum,GLenum,GLint) glTexParameteri;
    void function(GLenum,GLenum,GLfloat*) glTexParameterfv;
    void function(GLenum,GLenum,GLint*) glTexParameteriv;
    void function(GLenum,GLenum,GLfloat*) glGetTexParameterfv;
    void function(GLenum,GLenum,GLint*) glGetTexParameteriv;
    void function(GLenum,GLint,GLenum,GLfloat*) glGetTexLevelParameterfv;
    void function(GLenum,GLint,GLenum,GLint*) glGetTexLevelParameteriv;
    void function(GLenum,GLint,GLint,GLsizei,GLint,GLenum,GLenum,GLvoid*) glTexImage1D;
    void function(GLenum,GLint,GLint,GLsizei,GLsizei,GLint,GLenum,GLenum,GLvoid*) glTexImage2D;
    void function(GLenum,GLint,GLenum,GLenum,GLvoid*) glGetTexImage;

    void function(GLenum,GLdouble,GLdouble,GLint,GLint,GLdouble*) glMap1d;
    void function(GLenum,GLfloat,GLfloat,GLint,GLint,GLfloat*) glMap1f;
    void function(GLenum,GLdouble,GLdouble,GLint,GLint,GLdouble,GLdouble,GLint,GLint,GLdouble*) glMap2d;
    void function(GLenum,GLfloat,GLfloat,GLint,GLint,GLfloat,GLfloat,GLint,GLint,GLfloat*) glMap2f;
    void function(GLenum,GLenum,GLdouble*) glGetMapdv;
    void function(GLenum,GLenum,GLfloat*) glGetMapfv;
    void function(GLenum,GLenum,GLint*) glGetMapiv;
    void function(GLdouble) glEvalCoord1d;
    void function(GLfloat) glEvalCoord1f;
    void function(GLdouble*) glEvalCoord1dv;
    void function(GLfloat*) glEvalCoord1fv;
    void function(GLdouble,GLdouble) glEvalCoord2d;
    void function(GLfloat,GLfloat) glEvalCoord2f;
    void function(GLdouble*) glEvalCoord2dv;
    void function(GLfloat*) glEvalCoord2fv;
    void function(GLint,GLdouble,GLdouble) glMapGrid1d;
    void function(GLint,GLfloat,GLfloat) glMapGrid1f;
    void function(GLint,GLdouble,GLdouble,GLint,GLdouble,GLdouble) glMapGrid2d;
    void function(GLint,GLfloat,GLfloat,GLint,GLfloat,GLfloat) glMapGrid2f;
    void function(GLint) glEvalPoint1;
    void function(GLint,GLint) glEvalPoint2;
    void function(GLenum,GLint,GLint) glEvalMesh1;
    void function(GLenum,GLint,GLint,GLint,GLint) glEvalMesh2;

    void function(GLenum,GLfloat) glFogf;
    void function(GLenum,GLint) glFogi;
    void function(GLenum,GLfloat*) glFogfv;
    void function(GLenum,GLint*) glFogiv;

    void function(GLsizei,GLenum,GLfloat*) glFeedbackBuffer;
    void function(GLfloat) glPassThrough;
    void function(GLsizei,GLuint*) glSelectBuffer;
    void function() glInitNames;
    void function(GLuint) glLoadName;
    void function(GLuint) glPushName;
    void function() glPopName;

    void function(GLsizei,GLuint*) glGenTextures;
    void function(GLsizei,GLuint*) glDeleteTextures;
    void function(GLenum,GLuint) glBindTexture;
    void function(GLsizei,GLuint*,GLclampf*) glPrioritizeTextures;
    GLboolean function(GLsizei,GLuint*,GLboolean*) glAreTexturesResident;
    GLboolean function(GLuint) glIsTexture;

    void function(GLenum,GLint,GLint,GLsizei,GLenum,GLenum,GLvoid*) glTexSubImage1D;
    void function(GLenum,GLint,GLint,GLint,GLsizei,GLsizei,GLenum,GLenum,GLvoid*) glTexSubImage2D;
    void function(GLenum,GLint,GLenum,GLint,GLint,GLsizei,GLint) glCopyTexImage1D;
    void function(GLenum,GLint,GLenum,GLint,GLint,GLsizei,GLsizei,GLint) glCopyTexImage2D;
    void function(GLenum,GLint,GLint,GLint,GLint,GLsizei) glCopyTexSubImage1D;
    void function(GLenum,GLint,GLint,GLint,GLint,GLint,GLsizei,GLsizei) glCopyTexSubImage2D;

    void function(GLint,GLenum,GLsizei,GLvoid*) glVertexPointer;
    void function(GLenum,GLsizei,GLvoid*) glNormalPointer;
    void function(GLint,GLenum,GLsizei,GLvoid*) glColorPointer;
    void function(GLenum,GLsizei,GLvoid*) glIndexPointer;
    void function(GLint,GLenum,GLsizei,GLvoid*) glTexCoordPointer;
    void function(GLsizei,GLvoid*) glEdgeFlagPointer;
    void function(GLenum,GLvoid**) glGetPointerv;
    void function(GLint) glArrayElement;
    void function(GLenum,GLint,GLsizei) glDrawArrays;
    void function(GLenum,GLsizei,GLenum,GLvoid*) glDrawElements;
    void function(GLenum,GLsizei,GLvoid*) glInterleavedArrays;
}